增加大屏隐私保护;

FFIB 2 年之前
父节点
当前提交
0d85126565
共有 2 个文件被更改,包括 15 次插入2 次删除
  1. 13 2
      api/eqpt_views.py
  2. 2 0
      api/point_views.py

+ 13 - 2
api/eqpt_views.py

@@ -170,6 +170,17 @@ def eqpt_result(request):
170 170
         'fever_num': fever_num,
171 171
     })
172 172
 
173
+def protect_user_privacy(field):
174
+    if (field.get('key', '') == 'phone'):
175
+        phone = list(field.get('value', ''))
176
+        phone[3:7] = '****'
177
+        return ''.join(phone)
178
+    elif (field.get('key', '') == 'name'):
179
+        name = list(field.get('value', ''))
180
+        name[1] = '*'
181
+        return ''.join(name)
182
+
183
+    return field.get('value', '')
173 184
 
174 185
 def get_screen_data(point=None, point_id=None):
175 186
     if not point:
@@ -180,11 +191,11 @@ def get_screen_data(point=None, point_id=None):
180 191
 
181 192
     # eqpts = ThermometerEquipmentInfo.objects.filter(point_id=point.point_id, active_status=ThermometerEquipmentInfo.ONLINE, status=True)
182 193
 
183
-    ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True)
194
+    ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True).order_by('-last_submit_at')
184 195
     total_active_eqpt_num = ipuis.count()
185 196
 
186 197
     ipuis = [{**ipui.data, **{
187
-        field.get('key', ''): field.get('value', '') for field in ipui.fields }} for ipui in ipuis]
198
+        field.get('key', ''): protect_user_privacy(field) for field in ipui.fields }} for ipui in ipuis]
188 199
 
189 200
     
190 201
     has_upload_temperature_num = len([1 for ipui in ipuis if ipui.get('temperature_has_upload', '') == IsolationPointUserInfo.HAS_YET_UPLOAD])

+ 2 - 0
api/point_views.py

@@ -78,6 +78,8 @@ def save_point_fields(request):
78 78
     user_id = request.POST.get('user_id', '')
79 79
     fields = get_query_value(request, 'fields', val_cast_type='listjson')
80 80
 
81
+    IsolationPointUserInfo.objects.exclude(point_id=point_id).update(status=False)
82
+
81 83
     IsolationPointUserInfo.objects.update_or_create(point_id=point_id, user_id=user_id, defaults={
82 84
         'fields': fields,
83 85
         'status': True,